namespace Sirius.Collections
{
    using System;
    using System.Collections.Generic;

    public interface ITree<T> : IEnumerable<T>, IEquatable<ITree<T>>
    {
        IEnumerable<T> Plain { get; }
        T Element { get; }

        IEnumerable<ITree<T>> Children { get; }

        void Add(T item);
        void Add(ITree<T> item);
    }
}